The Hot Path SSA Form: Extending the Static Single Assignment Form for Speculative Optimizations
نویسندگان
چکیده
The Static Single Assignment (SSA) form has been an eminent contribution towards analyzing programs for compiler optimizations. It has been a able to the design of simpler algorithms for existing optimizations, and has facilitated the development of new ones. However, speculative optimizations optimizations targeted towards speeding-up the common cases of a program have not been fortunate enough to savor an SSA-like intermediate form. We extend the SSA form for speculative analyses and optimizations by allowing only hot reaching de nitions de nitions along frequent acyclic paths in the program pro le to reach its respective uses; we call this representation the Hot Path SSA form. We propose an algorithm for constructing such a form, and demonstrate its e ectiveness by designing the analysis phase of a novel optimization Speculative Sparse Conditional Constant Propagation: an almost obvious extension of Wegman and Zadeck's Sparse Conditional Constant Propagation algorithm. Our experiments on some SPEC2000 programs proves the potency of such an optimization.
منابع مشابه
Task Static Single Assignment (T-SSA) and Its Use in Safe Program Parallelization (short paper)
The mechanism of copy-on-write is recently used in speculative and deterministic parallel systems. In these systems, copy-on-write happens when a task modifies a variable for the first time. At the program level, the copying is a form of renaming. This paper extends the formalism of static single assignment (SSA) to introduce a program representation called task static single assignment (T-SSA)...
متن کاملTranslating Out of Predicated Static Single Assignment Form
Static Single Assignment (SSA) form is an intermediate representation that allows a compiler to perform advanced optimizations to extract parallelism. Predication is an architectural feature to maximize instruction level parallelism. If a compiler uses a predicated SSA form that is a combination of an SSA form and predication as an intermediate representation, it can perform advance optimizatio...
متن کاملSimple Generation of Static Single-Assignment Form
The static single-assignment (SSA) form of a program provides data flow information in a form which makes some compiler optimizations easy to perform. In this paper we present a new, simple method for converting to SSA form, which produces correct solutions for nonreducible control-flow graphs, and produces minimal solutions for reducible ones. Our timing results show that, despite its simplici...
متن کاملTree SSA – A New High-Level Optimization Framework for the GNU Compiler Collection∗
In this paper we introduce Tree SSA, a new optimization framework for the GNU Compiler Collection (GCC) based on the Static Single Assignment form. The paper provides a brief historical perspective on GCC’s development, the rationale behind the new framework and its potential applications. We will also discuss some of the analyses and optimizations that are being designed and implemented on top...
متن کاملAnticipation-based partial redundancy elimination for static single assignment form
Partial redundancy elimination (PRE) is a program transformation that identifies and eliminates expressions that are redundant on at least one (but not necessarily all) execution paths of a program without increasing any path length. Chow, Kennedy, et al. devised an algorithm (SSAPRE) for performing partial redundancy elimination on intermediate representation in static single assignment (SSA) ...
متن کامل